Device performance monitoring

ABSTRACT

A computing device performance monitor may be configured to collect performance metric information regarding one or more monitored computing devices, and may assign condition point values to each metric. The performance monitor may generate a total of the condition point values, and use the total to determine an appropriate response.

BACKGROUND

Communication networks rely on the operation of multitudes of individualdevices to successfully operate, and maintaining such networks requiresidentifying and responding to failures and degradations in performanceof the various devices. For example, in a content distribution network,individual devices in user homes may provide status report dataidentifying their own performance. In a network of thousands of devices,processing the large volume of status report data may be challenging,and there remains an ever-present need for effective approaches tomanaging data to maintain a network.

SUMMARY

The following summary is for illustrative purposes only, and is notintended to limit or constrain the detailed description.

In some embodiments disclosed herein, a health monitoring computingdevice may identify a plurality of performance metrics for variouscomputing devices whose health will be monitored. For each metric, thehealth monitoring computing device may identify a plurality ofperformance metric ranges, and a corresponding condition value (e.g., apoint value) for each of the performance metric ranges. The healthmonitoring computing device may then monitor the health of a computingdevice by evaluating the various performance metrics for the computingdevice, assigning a condition value to the monitored device based on howthe monitored device's performance metric compares with one or moreperformance metric ranges. The health monitoring computing device maythen aggregate some or all of the various condition point valuesassigned for the various performance metrics, and use the aggregatedvalue to report the health of the monitored computing device and, ifneeded, take corrective action.

In some embodiments, the various performance metric ranges maycorrespond to different levels of performance of the device according tothe corresponding performance metric. Various performance metrics may beused, and the metrics may vary depending on the type of computing devicebeing monitored. For example, user premises equipment (e.g., gateways,set-top-boxes, digital video recorders, modems, etc.) metrics mayinclude forward data carrier reception level, reverse data carrierreception level, a count of reverse data carrier retransmissionoperations, a measurement of a reverse data channel transmission level,a quadrature amplitude modulation (QAM) receive signal level, a QAMsignal-to-noise ratio, a forward data channel signal-to-noise ratio, acount of QAM or forward data channel error rate (e.g., errors persecond) over a period of time (e.g., a 24-hour period), an out-of-bandsignal-to-noise ratio or signal level quality, an Internet Protocol (IP)network reentry count, an indication of whether a control channel islocked, an inband signal quality or signal-to-noise ratio, video ondemand (VOD) error count, aborted upstream message count, an upstreamtransmit level, a long-term error count delta, a count of forward errorcorrection (FEC) errors corrected, a count of uncorrectable FEC errors,a tuner signal-to-noise ratio or automatic gain control level, a countof a number of lost locks, a count of program count errors, a count ofpresentation time stamp errors, and a tuner power level.

For computing devices that are further upstream from a user premises(e.g., VOD servers, content delivery servers, etc.), the metrics mayinclude a count of the number of errors in the serviced user premisesequipment, a count of a number of duplicate active devices, a count of anumber of non-responding devices, a count of a number of unpaired cablecards, and a count of VOD errors.

The summary here is not an exhaustive listing of the novel featuresdescribed herein, and is not limiting of the claims. These and otherfeatures are described in greater detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the presentdisclosure will become better understood with regard to the followingdescription, claims, and drawings. The present disclosure is illustratedby way of example, and not limited by, the accompanying figures in whichlike numerals indicate similar elements.

FIG. 1 illustrates an example communication network on which variousfeatures described herein may be used.

FIG. 2 illustrates an example computing device that can be used toimplement any of the methods, servers, entities, and computing devicesdescribed herein.

FIG. 3 illustrates an example process for monitoring computing devicehealth.

DETAILED DESCRIPTION

In the following description of various illustrative embodiments,reference is made to the accompanying drawings, which form a parthereof, and in which is shown, by way of illustration, variousembodiments in which aspects of the disclosure may be practiced. It isto be understood that other embodiments may be used, and structural andfunctional modifications may be made, without departing from the scopeof the present disclosure.

FIG. 1 illustrates an example communication network 100 on which many ofthe various features described herein may be implemented. Network 100may be any type of information distribution network, such as satellite,telephone, cellular, wireless, etc. One example may be an optical fibernetwork, a coaxial cable network, or a hybrid fiber/coax distributionnetwork. Such networks 100 use a series of interconnected communicationlinks 101 (e.g., coaxial cables, optical fibers, wireless, etc.) toconnect multiple premises 102 (e.g., businesses, homes, consumerdwellings, etc.) to a local office or headend 103. The local office 103may transmit downstream information signals onto the links 101, and eachpremises 102 may have a receiver used to receive and process thosesignals.

There may be one link 101 originating from the local office 103, and itmay be split a number of times to distribute the signal to variouspremises 102 in the vicinity (which may be many miles) of the localoffice 103. The links 101 may include components not illustrated, suchas splitters, filters, amplifiers, etc. to help convey the signalclearly, but in general each split introduces a bit of signaldegradation. Portions of the links 101 may also be implemented withfiber-optic cable, while other portions may be implemented with coaxialcable, other lines, or wireless communication paths.

The local office 103 may include an interface, such as a terminationsystem (TS) 104. In a hybrid fiber-coaxial network, the interface 104may be a cable modem termination system (CMTS), which may be a computingdevice configured to manage communications between devices on thenetwork of links 101 and backend devices such as servers 105-107 (to bediscussed further below). The interface 104 may be as specified in astandard, such as the Data Over Cable Service Interface Specification(DOCSIS) standard, published by Cable Television Laboratories, Inc.(a.k.a. CableLabs), or it may be a similar or modified device instead.The interface 104 may be configured to place data on one or moredownstream frequencies to be received by modems at the various premises102, and to receive upstream communications from those modems on one ormore upstream frequencies.

The local office 103 may also include one or more network interfaces108, which can permit the local office 103 to communicate with variousother external networks 109. These networks 109 may include, forexample, networks of Internet devices, telephone networks, cellulartelephone networks, fiber optic networks, local wireless networks (e.g.,WiMAX), satellite networks, and any other desired network, and thenetwork interface 108 may include the corresponding circuitry needed tocommunicate on the external networks 109, and to other devices on thenetwork such as a cellular telephone network and its corresponding cellphones.

As noted above, the local office 103 may include a variety of servers105-107 that may be configured to perform various functions. Forexample, the local office 103 may include a push notification server105. The push notification server 105 may generate push notifications todeliver data and/or commands to the various premises 102 in the network(or more specifically, to the devices in the premises 102 that areconfigured to detect such notifications). The local office 103 may alsoinclude a content server 106. The content server 106 may be one or morecomputing devices that are configured to provide content to users attheir premises. This content may be, for example, video on demandmovies, television programs, songs, text listings, etc. The contentserver 106 may include software to validate user identities andentitlements, to locate and retrieve requested content, to encrypt thecontent, and to initiate delivery (e.g., streaming) of the content tothe requesting user(s) and/or device(s).

The local office 103 may also include one or more application servers107. An application server 107 may be a computing device configured tooffer any desired service, and may run various languages and operatingsystems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD,Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, anapplication server may be responsible for collecting television programlistings information and generating a data download for electronicprogram guide listings. Another application server may be responsiblefor monitoring user viewing habits and collecting that information foruse in selecting advertisements. Yet another application server may beresponsible for formatting and inserting advertisements in a videostream being transmitted to the premises 102. Although shown separately,one of ordinary skill in the art will appreciate that the push server105, content server 106, and application server 107 may be combined.Further, here the push server 105, content server 106, and applicationserver 107 are shown generally, and it will be understood that they mayeach contain memory storing computer executable instructions to cause aprocessor to perform steps described herein and/or memory for storingdata.

An example premises 102 a, such as a home, may include an interface 120.The interface 120 can include any communication circuitry needed toallow a device to communicate on one or more links 101 with otherdevices in the network. For example, the interface 120 may include amodem 110, which may include transmitters and receivers used tocommunicate on the links 101 and with the local office 103. The modem110 may be, for example, a coaxial cable modem (for coaxial cable lines101), a fiber interface node (for fiber optic lines 101), twisted-pairtelephone modem, cellular telephone transceiver, satellite transceiver,local wi-fi router or access point, or any other desired modem device.Also, although only one modem is shown in FIG. 1, a plurality of modemsoperating in parallel may be implemented within the interface 120.Further, the interface 120 may include a gateway interface device 111.The modem 110 may be connected to, or be a part of, the gatewayinterface device 111. The gateway interface device 111 may be acomputing device that communicates with the modem(s) 110 to allow one ormore other devices in the premises 102 a, to communicate with the localoffice 103 and other devices beyond the local office 103. The gateway111 may be a set-top box (STB), digital video recorder (DVR), computerserver, or any other desired computing device. The gateway 111 may alsoinclude (not shown) local network interfaces to provide communicationsignals to requesting entities/devices in the premises 102 a, such asdisplay devices 112 (e.g., televisions), additional STBs or DVRs 113,personal computers 114, laptop computers 115, wireless devices 116(e.g., wireless routers, wireless laptops, notebooks, tablets andnetbooks, cordless phones (e.g., Digital Enhanced CordlessTelephone—DECT phones), mobile phones, mobile televisions, personaldigital assistants (PDA), etc.), landline phones 117 (e.g. Voice overInternet Protocol—VoIP phones), and any other desired devices. Examplesof the local network interfaces include Multimedia Over Coax Alliance(MoCA) interfaces, Ethernet interfaces, universal serial bus (USB)interfaces, wireless interfaces (e.g., IEEE 802.11, IEEE 802.15), analogtwisted pair interfaces, Bluetooth interfaces, and others.

The various devices in the system may be configured to perform healthmonitoring services. For example, the gateway 111 and modem 110 maymonitor its own performance metrics (examples described further below)and may report its own performance metrics to a performance monitoringcomputing device 118. The performance monitoring computing device 118may collect performance metric information from a variety of devices inthe system (e.g., devices at the various premises 102), and may performevaluations on the various metrics to develop an assessment of anoverall health of a particular device or portion of a network.

FIG. 2 illustrates general hardware elements that can be used toimplement any of the various computing devices discussed herein. Thecomputing device 200 may include one or more processors 201, which mayexecute instructions of a computer program to perform any of thefeatures described herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, removable media 204,such as a Universal Serial Bus (USB) drive, compact disk (CD) or digitalversatile disk (DVD), floppy disk drive, or any other desired storagemedium. Instructions may also be stored in an attached (or internal)hard drive 205. The computing device 200 may include one or more outputdevices, such as a display 206 (e.g., an external television), and mayinclude one or more output device controllers 207, such as a videoprocessor. There may also be one or more user input devices 208, such asa remote control, keyboard, mouse, touch screen, microphone, etc. Thecomputing device 200 may also include one or more network interfaces,such as a network input/output (I/O) circuit 209 (e.g., a network card)to communicate with an external network 210. The network input/outputcircuit 209 may be a wired interface, wireless interface, or acombination of the two. In some embodiments, the network input/outputcircuit 209 may include a modem (e.g., a cable modem), and the externalnetwork 210 may include the communication links 101 discussed above, theexternal network 109, an in-home network, a provider's wireless,coaxial, fiber, or hybrid fiber/coaxial distribution system (e.g., aDOCSIS network), or any other desired network. Additionally, the devicemay include a location-detecting device, such as a global positioningsystem (GPS) microprocessor 211, which can be configured to receive andprocess global positioning signals and determine, with possibleassistance from an external server and antenna, a geographic position ofthe device. FIG. 2 illustrates a health monitor 212 component, which maybe a dedicated processor configured to perform the various healthmonitoring functions described herein, or it may be implemented by thedevice's main processor 201.

The FIG. 2 example is a hardware configuration, although the illustratedcomponents may be implemented as software as well. Modifications may bemade to add, remove, combine, divide, etc. components of the computingdevice 200 as desired. Additionally, the components illustrated may beimplemented using basic computing devices and components, and the samecomponents (e.g., processor 201, ROM storage 202, display 206, etc.) maybe used to implement any of the other computing devices and componentsdescribed herein. For example, the various components herein may beimplemented using computing devices having components such as aprocessor executing computer-executable instructions stored on acomputer-readable medium, as illustrated in FIG. 2. Some or all of theentities described herein may be software based, and may co-exist in acommon physical platform (e.g., a requesting entity can be a separatesoftware process and program from a dependent entity, both of which maybe executed as software on a common computing device).

One or more aspects of the disclosure may be embodied in acomputer-usable data and/or computer-executable instructions, such as inone or more program modules, executed by one or more computers or otherdevices. Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types when executed by a processor ina computer or other data processing device. The computer executableinstructions may be stored on one or more computer readable media suchas a hard disk, optical disk, removable storage media, solid statememory, RAM, etc. As will be appreciated by one of skill in the art, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments. In addition, the functionality may beembodied in whole or in part in firmware or hardware equivalents such asintegrated circuits, field programmable gate arrays (FPGA), and thelike. Particular data structures may be used to more effectivelyimplement one or more aspects of the disclosure, and such datastructures are contemplated within the scope of computer executableinstructions and computer-usable data described herein.

FIG. 3 illustrates an example performance or health monitoring processthat may be performed by the health monitor 118. In step 301, the healthmonitor 118 may be configured to identify the various device performancemetrics available for the devices whose health or performance is beingmonitored. The performance metrics may vary depending on device type.For example, one model of a computing device may report a first set ofperformance metrics, while a different model reports differentperformance metrics, and the monitoring device 118 may be configured toprocess the metrics for the different models differently. The metricsmay be measured and reported by the devices themselves, eitherperiodically or on request by the monitor 118, or they may be metricsmeasured by the monitor 118 itself (or by any other device in thesystem). The configuration in step 301 may include establishing theparameters and conditions by which the performance metrics will beobtained. The monitored devices may be programmed to report someperformance metrics according to a predetermined schedule (e.g., onemetric is reported every five minutes, another is reported once a day,etc.), and may be configured with the destination address to which theyshould be sending their reports. The configuration may also includeprogramming the monitoring device 118 to collect certain performancemetrics as well (e.g., the device 118 may make certain measurements oncea day, and other measurements every minute, etc.). The various reportingdetails for the different performance metrics are explained in greaterdetail below.

In step 302, the possible range of values that a metric may provide maybe divided into a plurality of predefined ranges, corresponding todifferent levels of performance. For example, one metric may have threeranges corresponding to good performance, less-than-good-but-acceptableperformance (e.g., OK or fair performance), and poor performance. Aswill be described further below, these ranges may be used to determinewhether a particular performance metric is indicative of a problem withthe device being monitored. The performance metrics may be based on avariety of measured characteristics, such as signal dB loss.

In step 303, each of the predefined ranges of the performance metrics(e.g., the good, OK and poor ranges for each metric) may be assigned acondition value. In some embodiments, a metric in the good range may beassigned zero points, a metric in the OK range may be assigned fivepoints, and a metric in the poor range may be assigned ten points. Inalternative embodiments, the point values may be varied if, for example,one performance metric is determined to be a better (or worse) indicatorof a problem with the device than other performance metrics.

Examples of the performance metrics that may be used, along with theirranges and condition point values, are described below. The variousmetrics may refer to values measured and reported by the devices beingmonitored (e.g., user premises devices, STB/DVR 113, etc.), or by otherdevices in the local office 103 (or beyond). The various valuesindicated may refer to measurements over a predetermined period of time,such as a 24-hour period.

On metric may be an Out-of-Band (OOB) signal-to-noise ratio (SNR)quality. This metric may be measured by a device being monitored, suchas a user premises computing device, and may measure the signal-to-noiseratio quality for an out-of-band signal received at the device. Anout-of-band signal may be one that is transmitted from the local office103 using a data transmission frequency or band that is different from afrequency or band used to transmit a video signal. In the example of avideo reception device, such as a set-top-box (STB) or digital videorecorder (DVR), the in-band signals may be the frequencies or digitalchannels carrying the video services that a user may view, and theout-of-band signals may be the other frequencies or digital channelsavailable in the transmission media (e.g., communication link 101). Theuser premises device (e.g., STB 113) may measure the signal-to-noiseratio quality of one or more received out-of-band signals received overthe link 101, and may report this performance metric to the healthmonitoring device 118. The metric ranges for this performance metric maybe as indicated in the table below (the “poor,” “fair” and “good” OOBSNR Quality values may be those reported by the various devicesthemselves):

Metric OOB SNR Condition Range Quality Point Value Poor Poor 10 FairFair 5 Good Good 0

Another performance metric may be an OOB signal level quality. Thismetric may measure how strong the out-of-band signal is when it isreceived at a user premises device. This metric's ranges may be asindicated in the table below (the “low,” “medium” and “high” OOB SignalLevel quality values may be those reported by the various devicesthemselves):

Metric OOB Signal Condition Range Level Quality Point Value Poor Low 10Fair Med 5 Good High 0

A similar metric may be established for in-band signal quality, using“poor”, “fair” and “good” values reported by the devices:

Metric In-Band Condition Range Signal Quality Point Value Poor Poor 10Fair Fair 5 Good Good 0

Another performance metric may be a count of the number of times that anInternet Protocol network reentry has been performed since the monitoreddevice rebooted. The IP network reentry may involve the monitored devicerequesting a new IP address, or otherwise re-establishing connectivitywith an IP server at the local office 103. This metric may be givenranges as indicated below:

Metric IP Network Condition Range Re-entry Count Point Value Poor >10 10Fair 6-9 5 Better 1-5 2 Good 0 0

Another performance metric may be a determination of whether themonitored device is able to successfully tune to (or lock on to) anout-of-band control channel that may be used to send downstream controlcommands from the local office 103 to the monitored device (e.g., STB113). This performance metric might only have two ranges. If the channelis locked, then the condition point value is 0 points. If the channel isnot locked, then the condition point value is 10 points.

Another performance metric may be a count of a number of video on demand(VOD) errors that have occurred in a predetermined time period (e.g., a24-hour period). A VOD error may occur when data connectivity is lost orinterrupted during a user's VOD session, and the user's monitored device(e.g., a STB) issues a repeat request for the content. The VOD error mayalternatively be an ordering error, in which the user's initial requestfor a VOD content fails to successfully get through to the local office103, and the STB resorts to repeating the VOD order request. Certaintypes of VOD errors, however, may be excluded from this count. Forexample, errors that were due to a user's account having billingproblems or insufficient funds may be excluded from this count, and thecount may only include errors that indicate the device was unable totune or communicate upstream. The ranges for VOD errors may be lesstolerant than other types of metrics, and may be as indicated below:

Metric Range VOD Error Count Condition Point Value Poor >1 10 Fair 1 5Good 0 0

The error rate may differ for different types of user devices, such asdifferent STBs or DVRs. For example, a different STB type may have arange as follows:

Metric Range VOD Errors Condition Point Value Poor >2 10 Fair 1-2 5 Good0 0

Another performance metric may be a count of a number of upstreaminteractive messages that the monitored device attempts to send, butwhich are unsuccessful (e.g., message not acknowledged by the localoffice 103 within a predetermined waiting period), within apredetermined time period. The metric ranges may be as follows:

Metric Range Aborted Upstream Msgs Condition Point Value Poor >10 10Fair 5-10 5 Good <5 0

Another metric may be an Inband SNR level. Similar to the OOB SNRQuality metric discussed above, the Inband SNR level may be a measure ofthe signal-to-noise ratio of an inband signal. The metric ranges may beas follows:

Metric Range Inband SNR Level Condition Point Value Poor <28 15 Fair28-30 11 Moderate >30 and ≦32 8 Acceptable >32 and ≦34 5 Better >34 and≦36 2 Good >36 0

Another metric may be an upstream transmit level, which may refer to atransmit strength used by the monitored device to send upstream signalsto the local office 103. The ranges may be as follows:

Metric Range Upstream Transmit Level Condition Point Value Poor <20or >61 15 Fair 20-25 or 56-61 10 Moderate 26-30 or 51-55 5 Good 31-50 0

Another metric may be a calculation of the long-term error count deltafor the monitored device. As noted above, the device may report errors,such as the VOD errors, and the monitoring device 118 may monitor theerror reports. The monitoring device 118 may determine whether the errorrate appears to be increasing at an unusual rate by comparing, forexample, a device's error count from one day with the device's errorcount from a preceding day. The metric ranges may be as follows:

Metric Range Long Term Error Delta Condition Point Value Poor >1001 25Undesirable 201-1000 20 Fair 101-200  15 Moderate 51-100 10 Better 1-505 Good 0 0

The metrics above may be ones used for a first type of user device, suchas set-top-boxes from Motorola, Inc. As indicated in the tables above,some metrics are assigned a higher condition point value than others.This may be done to weight or emphasize the importance of one metricover another, since some metrics may be better indicators of actualproblems in the network than others.

Another set of metrics may be used for a different device, such asset-top-boxes from Cisco Systems, Inc. One metric may be a report of theforward data channel (FDC) reception level, as noted by the monitoreddevice. The FDC reception level may refer to the device's ability toreceive a data channel from the local office 103, and may be a numericvalue reported by the device. The ranges may be as follows:

Metric Range FDC Receive Level Condition Point Value Poor n/a n/a Fair≧8 or ≦−8 5 Good >−8 and <8 0

In the example above, the lowest range may simply be ignored. This maybe useful if the metric is not a particularly good indicator of anactual device problem.

A similar metric may be used for reverse data channel (RDC) transmitlevel. The RDC transmit level may be a numeric value reported by thedevice referring to the transmission strength used by the monitoreddevice to successfully transmit data back up to the local office 103,and the ranges for this metric may be as indicated below:

Metric Range RDC Transmit Level Condition Point Value Poor ≧57 or ≦25 10Fair ≧54 and <57 5 Good >25 or <54 0

Another metric may be RDC retransmissions. This may be the same as theaborted upstream messages metric discussed above, and may count thenumber of times that the monitored device has to resend a transmissionto the local office 103 in a predetermined time period. The metricranges may be as follows, which may be different due to the differencesin the monitored device types:

Metric Range RDC Retransmissions Condition Point Value Poor n/a n/aFair >0 5 Good 0 0

Another metric may be a quadrature amplitude modulation (QAM) receivelevel. This metric may be the same as the OOB or Inband levels discussedabove, and may refer to the strength at which an incoming signal fromthe local office 103 (e.g., a QAM data channel) is received at themonitored device. The metric ranges may be as follows:

Metric Range QAM Rx Level Condition Point Value Poor ≧15 or ≦−15 10Fair >−15 and ≦−10 5 Or ≧10 and <15 Good >−10 and <10   0

Another metric may be a QAM SNR, which may be a measure of thesignal-to-noise ratio of a downstream QAM signal as it is received bythe monitored device. The ranges for this metric may be as follows:

Metric Range QAM SNR Condition Point Value Poor <29 10 Fair >29 and ≦335 Good >33 0

Another metric may be a forward data channel SNR, which may be a measureof the signal-to-noise ratio of a downstream data channel from the localoffice 103 to the monitored device (e.g., STB 113). The ranges for thismetric may be as follows:

Metric Range FDC SNR Condition Point Value Poor <28 10 Fair n/a n/aGood >28  0

As evident from the table above, this metric omits the fair range, andprovides a stronger indication of an error if the forward data channelsignal-to-noise ratio falls below 28.

Another metric may be a count of a rate of FDC errors that occur in apredetermined time period (e.g., errors per second average over the past24 hours). An error on the forward data channel may occur whenever, forexample, data from the local office 103 is sent to the monitored device,but not successfully received (and may be subsequently resent by thelocal office 103). The ranges for this metric may be as follows:

Metric Range FDC Error Rate Condition Point Value Poor >10 10 Fair 1-105 Good 0 0

Another set of performance metrics may be used in a third type ofmonitored device, such as set-top boxes following the DOCSIS (Data OverCable Service Interface Specification) standard. One such metric may bea tuner SNR, which is a measure of the signal-to-noise ratio of a signalreceived by the DOCSIS STB tuner. The ranges for this metric may be asfollows:

Metric Range Tuner SNR Condition Point Value Poor n/a n/a Fair >10 5Good 0-10 0

Another metric may involve the need for forward error correction (FEC)in receiving data by the monitored device. An FEC Corrected metric maybe tracked to determine how many errors in a predetermined time period(e.g., 24 hours) were corrected using FEC. A similar FEC Uncorrectablemetric may be tracked to determine how many errors were uncorrectableusing FEC. The ranges for both of these metrics may be as follows:

FEC Metric Range Corrected/Uncorrectable Condition Point Value Poor n/an/a Fair >1000 5 Good 0-1000 0

Another metric may be a Tuner AGC metric that tracks the level ofautomatic gain control being used by the monitored device's tuner tooutput signals received from the local office 103 to local devices(e.g., a television). The metric may be reported as a numerical value bythe monitored device, and the range for this metric may be as follows:

Metric Range Tuner AGC Condition Point Value Poor >50 10 Fair 11-50 5Good <=10 0

Another metric may be a Lost Lock count of the number of times thedevice's tuner loses its frequency lock on a carrier frequency sent fromthe local office 103. The range for this metric may be as follows:

Metric Range Lost Locks Condition Point Value Poor >100 10 Fair 11-100 5Good <=10 0

Another metric may be a count of the number of times the monitoreddevice experiences a program clock reference (PCR) error, which canoccur if incoming clock signals are not properly received. A similarmetric may be used for program time stamp (PTS) errors, which can occurif packet time stamps in a received video stream (e.g., an MPEG stream)are not received in the proper timing sequence. The ranges for both ofthese metrics may be as follows:

Metric Range PCR/PTS Errors Condition Point Value Poor >50 10 Fair 11-505 Good <=10 0

Another metric may be based on a power level of a received in-bandsignal. The metric may be a numeric value reported by the monitoreddevice, and the range for this Tuner Power Level metric may be asfollows:

Metric Range Tuner Power Level Condition Point Value Poor  ≧30 or ≦−3010 Fair ≧20 and <30 5 Or ≦−20 and >−30 Good >−20 and <20 0

The three sets of parameters discussed above have been discussed incontext of supporting three different types of computing devices, whichmay be end-user consumer devices (e.g., a Motorola STB, a Cisco STB anda DOCSIS STB). The local office 103 may also have corresponding servers(e.g. a content server 106) may be a node communicating with variousdevices at multiple premises 102, and those nodes may also haveaggregated metric data. There may be, however, different sets of rangesfor the different types of devices. For example, the first type ofdevice discussed above may have an STB Aggregate metric that identifiesthe overall number of errors occurring among the first type of deviceserviced by the node. The ranges for this metric may be as follows:

Metric Range STB Aggregate Condition Point Value Poor >20 10 Fair 14-205 Good  0-14 0

Another metric may identify a total count of trouble tickets involvingvideo quality or delivery. A trouble ticket may be created each time acustomer reports a complaint that needs resolution, and this metric mayfocus on the trouble tickets that deal with video quality ordelivery—other types of trouble tickets for other types of complaintsmay be ignored The range for this metric may be as follows:

Metric Range Trouble Ticket Count Condition Point Value Poor >10 TicketCount Fair 1-10 Ticket Count Good 0 0

Note that in this example, the condition point value may be equal to thecount of the number of trouble tickets.

Similar metrics may be used for the other two device types discussedabove. For the second device type, the metric ranges may be as follows:

Metric Range STB Aggregate Condition Point Value Poor >18 10 Fair 14-185 Good  0-14 0

Metric Range Trouble Ticket Count Condition Point Value Poor >10 TicketCount Fair 1-10 Ticket Count Good 0 0

And the third device type may have metric ranges as follows:

Metric Range STB Aggregate Condition Point Value Poor >20 10 Fair 11-205 Good  0-10 0

Metric Range Trouble Ticket Count Condition Point Value Poor >10 TicketCount Fair 1-10 Ticket Count Good 0 0

The health monitoring device 118 may also track overall downstream planthealth from the local office 103. At the local office 103, the device118 may keep track of the number of duplicate active STBs in thenetwork. A duplicate active STB (or other device) may be detected when,for example, two different devices attempt to connect for service usingthe same device identifier, or when requests using the same deviceidentifier are received from two different locations. Some amount ofmovement may be expected (e.g., customers who move to a newneighborhood), but excessive movement may indicate a possible problem.The metric may be measured as a percentage of the devices beingmonitored, and the ranges for this metric may be as follows:

Metric Range Duplicate Active Boxes Condition Point Value Poor >2% 10Fair 1-2%  5 Good <1% 0

Another metric may be an STB Aggregate metric that is a total of alldevice errors across the various device types.] This STB Aggregatemetric may have the following ranges:

Metric Range STB Aggregate Condition Point Value Poor >30 10 Fair 10-305 Good  0-9 0

Another metric may be a total count of the number of devices (e.g.,STBs) that do not respond to polling requests sent from the local office103. This metric may be measured as a percentage of the monitoreddevices, and may have the following ranges:

Metric Range Non Responders Condition Point Value Poor >5% 10 Fair 1-5% 5 Good <1% 0

Another metric may be a total count of the number of unpaired cablecards communicating on the network with the local office 103. A cablecard may be a computing device that is authorized by a content provider(e.g., a cable television company or other service provider), and whenthe card is inserted into a corresponding receptacle in a television orother device, the card allows the television or other device to beauthenticated to access the content provider's content. When thetelevision or other device initiates access to the content provider, thecontent provider may store information identifying a pairing of the cardwith the television or other device (e.g., the card's host device). Anunpaired card may refer to communications received from a card having nopreviously-recognized paired device. The metric may be measured as apercentage of the measured devices, and the ranges for this metric maybe as follows:

Metric Range Unpaired Cards Condition Point Value Poor  >2% 10 Fair >1to 2% 5 Good 0-1% 0

The example metrics above, and their respective ranges, are merelyexamples. Other metrics and ranges may be used as well, if desired, anddifferent ranges may be established for different types of devices.

After the metric ranges and condition point values are established, thehealth monitoring device 118 may being to receive metric data from thevarious devices in step 304. The reception of the various metrics mayoccur through a variety of mechanisms. First, the monitored devicesthemselves (e.g., the user premises devices, STB/DVR 113, gateway 111,etc.) may track some of the performance metrics themselves, and mayperiodically (or upon request from the health monitoring device 118)transmit a message to the health monitoring device 118, the messagecontaining their respective performance metric data and identificationsof the device(s) whose performance data is being sent. The performancemetrics may alternatively be gathered by the health monitoring device118 by polling other devices, or by directly measuring performance. Thisperformance metric data may be stored in a memory, such as hard drive205, by the health monitoring device 118.

In step 305, the health monitoring device 118 may determine whether itis time to analyze the overall health of one or more monitored devices.The health monitoring device may be configured to determine the overallhealth of a monitored device according to a predetermined schedule(e.g., once per 24-hour period, at certain time(s) of the day, etc.), orupon receipt of a predetermined command (e.g., a user at the localoffice 103 may send a command requesting that the device 118 check theoverall health of a particular monitored device.

If it is time to analyze the overall health of a monitored device, thenin step 306, the health monitoring device 118 may determine whichdevices are to be analyzed for overall health. This determination canalso be based on a schedule (e.g., each device is checked daily at ascheduled time), or upon specific request (e.g., an administrator maysend a command requesting a check of a particular device identified inthe command request).

In step 307, the health monitoring device 118 may begin a loop that isperformed for each of the devices to be analyzed. For each device, instep 308, the health monitoring device 118 may begin by resetting acondition total to zero. The condition total, as will be discussedbelow, may be used to keep a running total of the various conditionpoint values based on the device's performance metric data and theranges discussed above.

In step 309, the health monitoring device 118 may retrieve theperformance metric data for the device being analyzed, and in step 310,the health monitoring device 118 may begin a loop for each performancemetric stored for the monitored device that is being analyzed.

In step 311, the health monitoring device 118 may compare the device'sperformance metric with the metric's corresponding ranges to identifythe corresponding condition point value. In step 312, the healthmonitoring device 118 may add the identified condition point value tothe condition total. The health monitoring device 118 may return to step310 to continue the loop until all of the analyzed device's metrics havebeen processed, and when all of those metrics have been processed, thehealth monitoring device may proceed to step 313. In step 313, thehealth monitoring device may evaluate the analyzed device's conditionpoint total, and compare it to a response scale to determine what stepsshould be taken. The response scale may be device-specific, and mayindicate the actions to be taken if the condition point value reaches apredefined value. For example, the response scale may indicate thefollowing point thresholds and corresponding treatment:

Condition Point Total Response 0-50 Nothing >50 Transmit alert messageto administrator, identifying the analyzed device and providing itsperformance metrics

Further escalations may involve forwarding the issue to localengineering for analysis, and sending personnel to the customer'spremises to investigate the issue.

The health monitoring device 118 may send a message to an administrator,informing the administrator of the total point value for the monitoreddevice. Alternatively, the device 118 may signal an alarm if the totalpoint value is high enough, as indicated by the response scale, towarrant an alarm.

The example above in step 312 adds the various condition point values togenerate the condition point total. Addition, however, is just oneexample of how the various condition point values may be combined toresult in a combined condition point value. The various individualcondition point values may be combined in other ways, such as throughmultiplication by weighting, to yield the combined condition pointvalue.

In the example embodiments are described above, the various features andsteps may be combined, divided, omitted, rearranged, revised and/oraugmented in any desired manner, depending on the specific outcomeand/or application. Various alterations, modifications, and improvementswill readily occur to those skilled in art. Such alterations,modifications, and improvements as are made obvious by this disclosureare intended to be part of this description though not expressly statedherein, and are intended to be within the spirit and scope of thedisclosure. Accordingly, the foregoing description is by way of exampleonly, and not limiting. This patent is limited only as defined in thefollowing claims and equivalents thereto.

What is claimed is:
 1. A method, comprising: determining, by one or morecomputing devices, a plurality of performance metrics for a monitoredcomputing device; determining, by the one or more computing devices andfor each of the plurality of performance metrics, a first metric rangeand a second metric range; determining, by the one or more computingdevices and for each of the plurality of performance metrics, a firstcondition point value corresponding to the first metric range determinedfor that performance metric and a second condition point valuecorresponding to the second metric range determined for that performancemetric; for each performance metric of the plurality of performancemetrics: determining, by the one or more computing devices, a measuredvalue for that performance metric for the monitored computing device;when the measured value is within a first metric range determined forthat performance metric, assigning, by the one or more computingdevices, a first condition point value determined for that first metricrange to the monitored computing device; and when the measured value iswithin a second metric range determined for that performance metric,assigning, by the one or more computing devices, a second conditionpoint value determined for that second metric range to the monitoredcomputing device; determining, by the one or more computing devices, aperformance value for the monitored computing device by combining eachcondition point value assigned to the monitored computing device toyield a combined condition point value; and using, by the one or morecomputing devices, the combined condition point value to generate amessage indicating performance of the monitored computing device.
 2. Themethod of claim 1, wherein the first and second metric ranges determinedfor each of the plurality of performance metrics correspond to poor andgood performance of the monitored computing device, respectively, andthe method further comprises: determining a third metric range for fairoperation for each of the performance metrics, and further using thethird metric range in determining the performance value for themonitored computing device.
 3. The method of claim 1, wherein one of theperformance metrics is a forward or reverse data carrier receptionlevel, for which the assigning comprises assigning a correspondingforward or reverse data carrier reception level condition point value tothe monitored computing device when determining the performance valuefor the monitored computing device.
 4. The method of claim 1, whereinone of the performance metrics is a count of a number of reverse datacarrier retransmission operations, for which the assigning comprisesassigning a corresponding reverse data channel retransmission countcondition point value to the monitored computing device when determiningthe performance value for the monitored computing device.
 5. The methodof claim 1, wherein one of the performance metrics is a quadratureamplitude modulation (QAM) receive level or QAM signal-to-noise ratio,for which the assigning comprises assigning a corresponding quadratureamplitude modulation receive level or QAM signal-to-noise ratiocondition point value to the monitored computing device when determiningthe performance value for the monitored computing device.
 6. The methodof claim 1, wherein one of the performance metrics is a forward datacarrier or quadrature amplitude modulation (QAM) errors-per-secondvalue, for which the assigning comprises assigning a correspondingerrors-per-second condition point value to the monitored computingdevice when determining the performance value for the monitoredcomputing device.
 7. The method of claim 1, wherein one of theperformance metrics is an out-of-band signal quality, for which theassigning comprises assigning a corresponding out-of-band signal qualitycondition point value to the monitored computing device when determiningthe performance value for the monitored computing device.
 8. The methodof claim 1, wherein one of the performance metrics is a network reentrycount value, for which the assigning comprises assigning a correspondingnetwork reentry count condition point value to the monitored computingdevice when determining the performance value for the monitoredcomputing device.
 9. The method of claim 1, wherein one of theperformance metrics is a video on demand error value, for which theassigning comprises assigning a corresponding video on demand errorcondition point value to the monitored computing device when determiningthe performance value for the monitored computing device.
 10. The methodof claim 1, wherein one of the performance metrics is an abortedupstream message count value, for which the assigning comprisesassigning a corresponding aborted upstream message count condition pointvalue to the monitored computing device when determining the performancevalue for the monitored computing device.
 11. The method of claim 1,wherein one of the performance metrics is an upstream transmit level,for which the assigning comprises assigning a corresponding upstreamtransmit level condition point value to the monitored computing devicewhen determining the performance value for the monitored computingdevice.
 12. The method of claim 1, wherein one of the performancemetrics is a count of forward error corrections, for which the assigningcomprises assigning a corresponding forward error corrections conditionpoint value to the monitored computing device when determining theperformance value for the monitored computing device; and whereinanother one of the performance metrics is a count of uncorrectableforward error correction errors, for which the assigning comprisesassigning a corresponding uncorrectable forward error correction errorscondition point value to the monitored computing device when determiningthe performance value for the monitored computing device.
 13. The methodof claim 1, wherein one of the performance metrics is an automatic gaincontrol level, for which the assigning comprises assigning acorresponding automatic gain control condition point value to themonitored computing device when determining the performance value forthe monitored computing device.
 14. The method of claim 1, wherein oneof the performance metrics is a count of lost locks, for which theassigning comprises assigning a corresponding lost lock condition pointvalue to the monitored computing device when determining the performancevalue for the monitored computing device.
 15. The method of claim 1,wherein one of the performance metrics is a count of program clockreference errors, for which the assigning comprises assigning acorresponding program clock reference error condition point value to themonitored computing device when determining the performance value forthe monitored computing device.
 16. The method of claim 1, wherein oneof the performance metrics is a count of presentation time stamp errors,for which the assigning comprises assigning a corresponding presentationtime stamp error condition point value to the monitored computing devicewhen determining the performance value for the monitored computingdevice.
 17. The method of claim 1, wherein one of the performancemetrics is an out-of-band signal quality, for which the assigningcomprises assigning a corresponding out-of-band signal quality conditionpoint value to the monitored computing device when determining theperformance value for the monitored computing device; wherein anotherone of the performance metrics is a network reentry count value, forwhich the assigning comprises assigning a corresponding network reentrycount condition point value to the monitored computing device whendetermining the performance value for the monitored computing device;wherein another one of the performance metrics is a video on demanderror value, for which the assigning comprises assigning a correspondingvideo on demand error condition point value to the monitored computingdevice when determining the performance value for the monitoredcomputing device; wherein another one of the performance metrics is anaborted upstream message count value, for which the assigning comprisesassigning a corresponding aborted upstream message count condition pointvalue to the monitored computing device when determining the performancevalue for the monitored computing device; and further basing thedetermination of the performance value for the monitored computingdevice on a determination of whether a control channel has been lockedfor the monitored computing device.
 18. A method, comprising:identifying, by one or more computing devices, first and second metricranges for a forward or reverse data carrier reception level, andassigning a corresponding forward or reverse data carrier receptionlevel condition point value to a monitored computing device whendetermining a health of the monitored computing device; identifying, bythe one or more computing devices, first and second metric ranges for acount of a number of reverse data carrier retransmission operations, andassigning a corresponding reverse data channel retransmission countcondition point value to the monitored computing device when determiningthe health of the monitored computing device; identifying, by the one ormore computing devices, first and second metric ranges for a modulationreceive level, and assigning a corresponding quadrature amplitudemodulation receive level condition point value to the monitoredcomputing device when determining the health of the monitored computingdevice; identifying, by the one or more computing devices, first andsecond metric ranges for a forward data carrier errors-per-second value,and assigning a corresponding errors-per-second condition point value tothe monitored computing device when determining the health of themonitored computing device; combining, by the one or more computingdevices, each condition point value assigned to the monitored computingdevice to yield a combined condition point value; and using, by the oneor more computing devices, the combined condition point value togenerate an alert indicating that the monitored computing device is inneed of service.
 19. A method, comprising: identifying, by a computingdevice, first and second metric ranges for a count of forward errorcorrections, and assigning a corresponding forward error correctionscondition point value to a monitored computing device when determining ahealth of the monitored computing device; identifying first and secondmetric ranges for a count of uncorrectable forward error correctionerrors, and assigning a corresponding uncorrectable forward errorcorrection errors condition point value to the monitored computingdevice when determining the health of the monitored computing device;identifying first and second metric ranges for an automatic gain controllevel, and assigning a corresponding automatic gain control conditionpoint value to the monitored computing device when determining thehealth of the monitored computing device; identifying first and secondmetric ranges for a count of lost locks, and assigning a correspondinglost lock condition point value to the monitored computing device whendetermining the health of the monitored computing device; identifyingfirst and second metric ranges for a count of program clock referenceerrors, and assigning a corresponding program clock reference errorcondition point value to the monitored computing device when determiningthe health of the monitored computing device; identifying first andsecond metric ranges for a count of presentation time stamp errors, andassigning a corresponding presentation time stamp error condition pointvalue to the monitored computing device when determining the health ofthe monitored computing device; combining each condition point valueassigned to the monitored computing device to yield a combined conditionpoint value; and using the combined condition point value to generate analert indicating that the monitored computing device is in need ofservice.
 20. The method of claim 1, wherein the combining furthercomprises adding each condition point value assigned to the monitoredcomputing device, and wherein the method further comprises generating anoutput alarm indicating health of the monitored computing device.